<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <!-- 引入数据 -->
    <script src="a.js"></script>
    <script>
      var treeData = data.RECORDS;

      var hashMap = {};
      for (var i = 0; i < treeData.length; i++) {
        hashMap[treeData[i].id] = treeData[i];
      }
      var result = [];
      for (var key in hashMap) {
        var item = hashMap[key];
        if (item.pid === "0") {
          result.push(item);
        } else {
          var parent = hashMap[item.pid];
          if (!parent.children) {
            parent.children = [];
          }
          parent.children.push(item);
        }
      }

      // 1. 构建hash表 避免递归  把O(n^2)复杂度变为O(n)复杂度
      // var hashMap = {};
      // for(var i = 0 ; i < treeData.length ; i ++){
      //     hashMap[treeData[i].id] = treeData[i];
      // }

      // // 2. 构建树 只需要找到孩子即可
      // var finalTree = [];
      // for(key in hashMap){
      //     var item = hashMap[key];
      //     // 顶级节点  直接加入finalTree
      //     if(item.pid === '0'){
      //         finalTree.push(item)
      //     }else{
      //         // 非顶级节点
      //         // 找到父类
      //         var pItem = hashMap[item.pid];
      //         if(!pItem.children){
      //             pItem.children = [];
      //         }
      //         // 加入父类children属性
      //         pItem.children.push(item)
      //     }
      // }
      // console.log(finalTree)
    </script>
  </body>
</html>
